<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script>
    // 深拷贝可以解决浅拷贝的缺点
    // 针对引用数据类型
    // 1通过递归实现深拷贝
    // let i = 1
    // function fn(){
    //   console.log(`${i}`);
    
    //   if(i >= 6){
    //     return
    //   }
    //   i++
    //   fn()
    //   // 函数递归，记得加return
    // }
    // fn()
    const obj = {
      uname: 'pink',
      age: 18,
      hobby: ['并棒球', ['足球']]
    }
const o = {}
function deepCopy(newobj, oldobj){
for(let k in oldobj){
  // k 属性名 oldobj[k] 属性值
  // 处理数组的问题
  if(oldobj[k] instanceof Array){
    newobj[k] = []
deepCopy(newobj[k],  oldobj[k])
  }else if(oldobj[k] instanceof Object){
    // Array 一定要写在 Object的前面
    newobj[k] = {}
deepCopy(newobj[k],  oldobj[k])
  {
    newobj[k] = oldobj[k]
  }
}
}
}
deepCopy(o, obj)
console.log(o);
o.hobby[0] = '篮球'
// 两个函数的值都不一样
console.log(obj);
// 函数调用，两个参数o 新对象 obj旧对象
obj.hobby[1] [0] = 'la'
obj.uname = 'luo'
obj.luo = ['jie']



    // 2 lodash/cloneDeep
    // 3通过JSON.stringfy()
  </script>
</body>
</html>